#pragma once

// policy class

struct NoCopy {
protected:
    NoCopy()  = default;
    ~NoCopy() = default;

    NoCopy(const NoCopy& rhs)            = delete;
    NoCopy& operator=(const NoCopy& rhs) = delete;
};

struct NoMove {
protected:
    NoMove()  = default;
    ~NoMove() = default;

    NoMove(NoMove&& rhs)            = delete;
    NoMove& operator=(NoMove&& rhs) = delete;
};
